﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using SeguroSoft.Models;
using SeguroSoft.Model.Model;

namespace SeguroSoft.Tests.Model
{
    /// <summary>
    /// Summary description for TestRepositorioSeguro
    /// </summary>
    [TestClass]
    public class TestRepositorioSeguro
    {

        RepositorioSeguro rs;

        [TestInitialize]
        public void inicializar()
        {
            rs = new RepositorioSeguro();

        }

        [TestMethod]
        public void Seguros_No_Encontrados_Con_Parametros_Inexistentes()
        {
            var result = rs.EncontrarSegurosPorAño(2011);

            Assert.AreEqual(result.ToList().Count, 0);
        }

        [TestMethod]
        public void Los_Seguros_No_Deberian_Ser_Encontrados()
        {

            var result = rs.EncontrarTodosLosSeguros();

            Assert.AreEqual(result.ToList().Count, 100);
        }

        [TestMethod]
        public void Seguros_Encontrados_Segun_Deducible()
        {

            var result = rs.EncontrarSegurosPorDeducible(1, 4000);

            Assert.AreEqual(result.ToList().Count, 2);
        }

        [TestMethod]
        public void Seguros_Encontrados_Segun_Prima()
        {
            var result = rs.EncontrarSegurosPorPrima(2, 50000);

            Assert.IsInstanceOfType(result.ToList().ElementAt(0), typeof(Seguro));
        }

        [TestMethod]
        public void Seguros_Encontrados_Segun_Modelo()
        {
            var result = rs.EncontrarSegurosPorModelo("Enzo");

            Assert.AreEqual(result.ToList().Count, 0);
        }

        [TestMethod]
        public void Seguros_Encontrados_Segun_Marca()
        {
            var result = rs.EncontrarSegurosPorMarca("Porsche");

            Assert.AreEqual(result.ToList().Count, 1);
        }

        [TestMethod]
        public void Seguro_Encontrado_Segun_Identificador()
        {
            
            var result = rs.ObtenerSeguro(6);

            Assert.IsInstanceOfType(result.Deducible, typeof(int));
        }
    }
}